package com.cskaoyan.javase.oop2._1extends._10final._1clazz;

/**
 * final修饰类,表示最终的类,最后的类
 * 表示该类不能被继承了,因为继承就可以扩展类,不能被继承的类是最后的类
 * 语法:
 * [访问权限修饰符] final class 类名{
 *     // 类体
 * }
 * 但是final类除了不能被继承外,和普通类没有任何区别\
 * 思考：什么样的类需要设置成final？
 * 不需要，不想要被子类继承的类，才需要设置为final修饰。
 * 当你认为当一个类的设计已经足够完善，功能足够强大了，不需要再让子类去扩展它了。
 * 这时出于安全的考虑，就可以将一个类设置为final。
 * 这样类中成员，既不会被继承，更不会被修改。
 *
 * 正常情况下，我们很少会主动把一个类设置成final，因为没有太多的必要性。实际开发中，也要慎重将一个类设置final。
 * 常见的final修饰的类，都在JDK的源码当中。比如四类八种基本数据类型的包装类、Void、String、System、Scanner等等。
 *
 * @since 11:15
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        Father f = new Father();
        System.out.println(f.num);
        f.test();

    }
}

final class Father {
    int num = 100;

    public void test() {
    }
}
// Cannot inherit from final 'com.cskaoyan.javase.oop2._1extends._10final._1clazz.Father'
// class Son extends Father{}